Notification handling system and method

ABSTRACT

A notification handling system determines a notification type for a notification received at a first device of a group of associated devices. The system determines at least a second device from the group that has a capability related to the notification type and accordingly routes the notification to the second device. The second device may be paired to the first device via a wireless link. The notification handling system also augments the notification with additional information for the second device based on the capability of the second device. The augmented information is obtained by extracting data from the notification and augmenting the notification based on the extracted data. The notification handling system may also send or receive a global notification dismissal that dismisses the notification from all associated devices that may have received the notification.

The present application is a continuation of U.S. patent applicationSer. No. 13/926,046, filed Jun. 25, 2013, which claimed priority to U.S.Provisional Application No. 61/781,295, filed on Mar. 14, 2013, thecontents of each of which are incorporated herein by reference.

FIELD OF THE DISCLOSURE

The present disclosure relates generally to wireless communicationsystems and mobile devices and more particularly to methods andapparatuses for handling notifications.

BACKGROUND

Notifications provide information to a communication device user that amessage has arrived or that some event has occurred, is occurring or isabout to occur. For example, notifications may be displayed on acommunication device to indicate calendar events, various alarms,waiting messages, etc. Such notifications may be displayed to the userin various ways. For example, some notifications may be displayed as anicon positioned on some section of the communication device display orby displaying a pop-up message that covers a portion of the displayscreen and that must be closed by the user by taking some specificaction. Notification messages may be generated by various applicationsresident on a communication device, or may be sent by a network or fromthe communication device operating system.

Many users employ multiple communication devices; however a usertypically can only use a single device at any one period of time. Anotification message received on a particular device may not beparticularly useful in that the particular device may not havecapability to respond to the notification and a useful way.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of inputs and output for a notification handlingsystem in accordance with an embodiment.

FIG. 2 is block diagram of plurality of user devices in communicationwith each other and with a network server in accordance with theembodiments.

FIG. 3 is diagram showing communication of notifications between variousmobile devices and a server in accordance with the embodiments.

FIG. 4 is a modified version of the FIG. 3 diagram showing one exampleuse case of communication of notifications between various mobiledevices and a server in accordance with the embodiments.

FIG. 5 is a partial schematic block diagram of a mobile device inaccordance with an embodiment.

FIG. 6 is a diagram of a software stack executing on a processor inaccordance an embodiment.

FIG. 7 is a diagram illustrating an example communication between awearable device and a mobile device in accordance with an embodiment.

FIG. 8 is a flow chart showing operation of a notification handlingsystem in accordance with various embodiments.

FIG. 9 is a flow chart showing operation of a notification handlingsystem in accordance with various embodiments.

FIG. 10 is a diagram of inputs and output for user behavior analysis inaccordance with an embodiment.

FIG. 11 is a diagram of inputs and output for device environmentanalysis in accordance with an embodiment.

FIG. 12 is a flow chart showing operation of a notification handlingsystem in accordance with various embodiments.

FIG. 13 is a flow chart showing further details of operation related tothe flow chart of FIG. 12.

FIG. 14 is a flow chart showing further details of operation related tothe flow chart of FIG. 12.

DETAILED DESCRIPTION

The disclosed embodiments provide a notification handling system andvarious methods of operations. One method of operation of thenotification handling system determines a notification type, for anotification received at a first device of a group of associateddevices, and determines at least a second device that is capable ofresponding to the notification. The notification handling system thenroutes the notification to the second device. The notification handlingsystem may also augment the notification with additional information forthe second device based on the capability of the second device.

The augmented information is obtained by extracting data from thenotification and augmenting the notification based on the extracteddata. The notification handling system may also send or receive a globalnotification dismissal that dismisses the notification from allassociated devices that may have received the notification.

The notification handling system parses the received notification andextracts data such as time sent, related content that is related to thenotification, identity of a sender or identity of an application thatgenerated the notification. The notification handling system thenaugments the notification using at least a portion of the extracted dataas additional information.

In some embodiments, the notification handling system obtains sensordata from a set of sensors of the second device, and analyzes the sensordata to determine the environment in which the second device is present.The notification handling system then routes the notification to thesecond device if the determined environment is suitable for the user toreceive the notification. For example, if the notification type isrelated to audio data, that notification may not be routed to a deviceif the device is found to be in a high noise level environment. Thesensor data could be an accelerometer, a gyroscope, a light levelsensor, a temperature sensor, or an audio sensor or some other type ofsensor. Other types of environments may include being in motion due tothe user running or walking, being in motion in a vehicle, being inmotion on a train, or being in a high-noise level environment, etc.

The notification handling system may also obtain location informationfrom the second device, and may determine whether the second device isin the proximity to the first device prior to routing the notificationto the second device. The notification may be routed according to anotification priority and a determined response action based on therelated content of the notification.

In another method of operation of a notification handling system, thesystem may receive a notification at a first device of a group ofassociated devices, route the notification from the first device to eachdevice of the group of associated devices, receive a notificationdismissal from one device of the group of associated devices in responseto the one device having received the notification, and route thenotification dismissal to the first device and each other device of thegroup of associated devices.

The notification may be dismissed on the first device, and each deviceof the group of devices, in response to the notification dismissalreceived by the first device and by each device of the group ofassociated devices. In other words, the dismissal from one device is aglobal notification dismissal that dismisses the like notification fromany devices in a group of devices that received the particularnotification.

The present disclosure also provides a device the has at least onewireless transceiver, a memory, and a notification handling system,operatively coupled to the at least one transceiver and to the memory.The notification handling system is operative to perform the methods ofoperations described herein.

A disclosed system includes a communication device and a wearable devicesuch as a wristwatch. The wearable device can receive the notificationover a wireless link with the communication device and can send a globalnotification dismissal to the communication device using the wirelesslink. The global notification dismissal dismisses the notification fromthe communication device and any other device of a group of associateddevices that received the notification.

One disclosed embodiments includes a device that has at least oneprogrammable processor and memory operatively coupled to theprogrammable processor. The memory contains executable instructions forexecution by the programmable processor, where upon executing theexecutable instructions the programmable processor is operative toprovide a notification handling system in an application framework layerof a software stack. The notification handling system is operativelycoupled to a notification manager of the application framework layer,and to various applications in an application layer of the softwarestack.

The notification handling system operative to intercept receivednotifications obtained by the plurality of applications by communicatingwith the various applications through the notification manager. Thenotification handling system may parse the received notifications todetermine notification content, origin and priority, and generate newnotifications containing augmented information related to the receivednotifications. The notification handling system selects one or moreassociated devices capable of receiving and responding to the newnotifications, and routes the new notifications to the one or moreassociated devices using a network.

The notification handling system may select one or more associateddevices capable of receiving and responding to the new notifications byassessing user behavior based on a user history. The user behaviorprovides information about how a user has responded to notifications ofa given type and having a given notification content, origin andpriority in the past. The notification handling system selects one ormore associated devices capable of enabling the user to respond to thenew notifications accordingly to past assessed user behavior.

The notification handling system may also assess a device environmentfor each of the one or more associated devices based on sensor dataobtained from each of the one or more associated devices, and by usingdevice environment along with the user behavior to determine when tosend the new notifications.

Turning now to the drawings, FIG. 1 illustrates an example of the inputsand output for a notification handling system 100 in accordance with anembodiment. A notification handling system 100 receives various inputsfrom each communication device of a group of communication devicesincluding notification data 101, device capabilities 103, deviceenvironment analysis 105, user preferences 107 and user behavioranalysis 109. Based on one or more of these various inputs, thenotification handling system 100 makes decisions and may create anaugmented notification useful for a particular communication device orfor a group of communication devices that may have limited capabilitiesfor responding to the notification. The notification handling system 100appropriately sends the augmented message to one or more communicationdevice using a notification routing module 111.

FIG. 2 is diagram of group of user communication devices 200 incommunication with each other and with a network server 203 inaccordance with the embodiments. A single user may own and employ thegroup of communication devices 200 which may include, but is not limitedto, personal computer 213, personal digital assistant (PDA) 205, atablet or e-book reader 207, a mobile telephone 209, a laptop computer211 and a smart watch 219. Each one of these devices is referred toherein as a communication device and has a corresponding networkconnection 215 to a network 201 which may be, for example, the Internet.A server 203 may be a cloud-based server and resides within the network201. The server 203 includes a notification routing and push mechanismand is operative to communicate with any of the group of communicationdevices 200 over the corresponding appropriate network connection 215.

The smart watch 219 may communicate with one or more of the othercommunication devices, such as the mobile telephone 209 or the laptopcomputer 211, using a wireless link technology that facilitates thewireless link 217 between the smart watch and the respectivecommunication devices as shown. Any one communication device of thegroup of communication devices 200 may receive notifications from thenetwork 201 or may generate notifications based on applications oroperating systems operating on the respective communication device.

FIG. 3 is diagram showing communication of notifications between variouscommunication devices 301 and 300 and the server 203 in accordance withthe embodiments. Communication device 300 can be any communicationdevice of the group of communication devices 200 shown in FIG. 2. Inaccordance with embodiments, the communication device 300 includes thenotification handling system 100 discussed briefly with respect toFIG. 1. The communication device 300 may communicate with a wide areanetwork (WAN) 303 over wireless link 305. For example, if communicationdevice 300 is a mobile telephone, the WAN 303 may be a wirelesstelephone network. The communication device 300 is operative tocommunicate with the server 203 residing in the network 201.Communication between the communication device 300 and network 201 maybe facilitated by the WAN 303 in some embodiments; however thecommunication device 300 may have other wireless transceivers tocommunicate with other networks other than WAN 303 to achieveconnectivity with the network 201.

In one example illustrated by FIG. 3, the communication device 300 mayreceive a notification from the WAN 303 over the wireless link 305. Inaccordance with one embodiment, the communication device 300 may routethe notification to one or more communication devices of a group ofcommunication devices 301. In the example shown in FIG. 3, the group ofother communication devices 301 includes communication device 301A, 301Band 301C and possibly other communication devices not shown. Eachcommunication device of the group of communication devices 301 isoperative to communicate with server 203 using the network 201. Thecommunication device 300 forms connection 215 to the server 203 by, forexample, logging into the server 203. The user of the communicationdevice 300 will also be the user of the group of communication devices301, and each device will be associated with the user's account withserver 203. The user will also have associated the communication device300 and each one of the group of communication devices 301 with theuser's account. In one example, the user may associate each of thecommunication devices with the user's account login ID.

The notification handling system 100, which is present on at leastcommunication device 300, may automatically establish the connection 215between the communication device 300 and server 203 without anyintervention from the user. Likewise, each one of the communicationdevices of the group of communication devices 301 may receiveinformation, or send information, over a connection 215 to the server203. Returning to the example under discussion, the communication device300 may receive a notification from the WAN 303 over the wireless link305, or alternatively a notification may be generated by an applicationresident on the communication device 300. The notification handlingsystem 100 will analyze the notification and take appropriate action.For example, the notification handling system 100 may create anaugmented notification that has information additional to the initialnotification displayed and communication device 300. The notificationhandling system 100 may send the augmented notification to the entiregroup of communication devices 301 or to a specific communicationdevice. In the example illustrated in FIG. 3, augmented notifications307A through 307C are sent to the respective communication devices byutilizing a routing push mechanism of the server 203. The server 203receives the augmented notifications 307A, 307B and 307C, andappropriately pushes them to the corresponding communication device.Therefore, augmented notification 307A is sent to communication device301A, augmented notification 307B is sent to communication device 301B,augmented notification 307C is sent to communication device 301C and soforth. The smart watch 219 may also receive an augmented notification307D over the wireless link 217 between the smart watch 219 and thecommunication device 300.

Therefore, in one example illustrated in FIG. 3, a notification receivedby communication device 300 is handled by the notification handlingsystem 100 and is augmented for each communication device associatedwith the user communication device 300, and is routed to that specificcommunication device using a routing push mechanism of the server 203 orsome other appropriate routing mechanism.

FIG. 4 modifies the FIG. 3 diagram to show one example use case ofrouting of notifications and responses between the various communicationdevices and the server 203 in accordance with the embodiments. In theexample of FIG. 4, the communication device 301C responds to theaugmented notification received in the example of FIG. 3. Thenotification response 309 is sent by communication device 301C to theserver 203 which is then routed to each of the other communicationdevices including communication device 301A, communication device 301Band communication device 300. The communication device 300 subsequentlyroutes the response 309 to the smart watch 219 over the wireless link217.

In some embodiments, the notification response 309 may be a dismissal ofthe notification. Furthermore, the notification response 309 may be aglobal dismissal in that it appropriately dismisses the notificationfrom being displayed on each of the communication devices to which thenotification response 309 is sent. That is, the notification response309 may be considered a control or command signal that controls orcommands the receiving communication devices to dismiss the notificationfrom the respective communication device display.

Further details of the notification handling system 100 are illustratedin FIG. 5 which is a partial schematic block diagram of thecommunication device 300. The notification handling system 100 mayconsist of several components including notification routing module 521,notification data mining module 523, behavior analysis module 525, andenvironment analysis module 527. Each of these modules are operativelycoupled to one another and are operative to send information includingcommand and control signals from one module to another. The variousmethods of operation of the notification handling system 100 and itsvarious components are best understood with respect to the flowchartsand various other diagrams provided herein which are described in detailbelow.

The partial schematic block diagram of a communication device 300provides an example of one kind of apparatus in accordance with theembodiments. The FIG. 5 diagram is for the purpose of describing tothose of ordinary skill how to make and use the disclosed subject matterby way of an example embodiment. It is to be understood that FIG. 5 is apartial schematic block diagrams in that, although the diagram shows atleast those components necessary to describe the features and advantagesof the various embodiments to those of ordinary skill, various othercomponents, circuitry, and devices may be necessary in order toimplement a complete functional apparatus such as the examplecommunication device 300 and that those various other components,circuitry, devices, etc., are understood to be present in theembodiments by those of ordinary skill.

Likewise it is to be understood that FIG. 5 illustrates examples ofcomponents that may be present in the communication device 300 and thatone or more of the various components shown in FIG. 5, other than thenotification handling module 100, may be omitted from the mobile device300 without detracting from enjoyment of the benefits, features andadvantages of the present disclosure. That is, different communicationdevices may or may not include some of the example components shown inFIG. 5 and therefore none of these example components are to beconstrued as being required for any particular embodiment.

The notification handling system 100 or any of its components (i.e.“modules”) shown in FIG. 5 may be implemented independently as softwareand/or firmware executing on one or more programmable processors, andmay also include, or may be implemented independently, using ASICs,DSPs, hardwired circuitry (logic circuitry), or combinations thereof.That is, the notification handling module 100 may be implemented usingan ASIC, DSP, executable code executing on a processor, logic circuitry,or combinations thereof.

The various sensors 519 may require hardwired circuitry and any such, orother, required hardwired circuitry in the communication device 300 mayinclude any of various components such as, but not limited to,oscillators, comparators, clocking circuits, operational amplifiers,other active components such as transistors, and passive components,etc., all of which are understood to be present in the embodiments bythose of ordinary skill as necessary for implementing the mobile device300.

An internal connection bus 505 provides operative coupling between thevarious communication device 300 components. That is, between any two ormore operatively coupled components, there may be one or moreintermediate or intervening components between, or along the connectionpath. Such components are understood herein to be operatively coupled.

Operative coupling may also exist between modules or componentsimplemented as software or firmware executing on a processor and such“software coupling” may be implemented using libraries or applicationprogramming interfaces (APIs) or other software interfacing techniquesas appropriate.

The display 513, if present, may provide a touchscreen user interfaceand, in some embodiments, may also provide a graphical user interface(GUI). The network transceiver 507, if present, may provide wirelesscommunication capabilities for one or more wide area networkcommunications systems such as, but not limited to, Wi-Fi cellular, 2G,3G or 4G wireless communications systems. The peer-to-peer transceiver509, if present, may provide wireless connectivity capabilities such as,but not limited to, Bluetooth™, Wireless USB, ZigBee, or othertechnologies, etc. such as near field communication (NFC). The userinterfaces (UI) 515 may include a track ball mouse, touch sensitiveelements, physical switches, gyroscopic position sensors, etc. Thedisplay 513, if present, may include touchscreen functionality as notedabove, and may be operative to receive command and control signals fromthe UI 515 directly, or via the processor 501, for functions such as,but not limited to, mouse cursor control click to provide selectioninput and or drag and drop features or other functionality in someembodiments.

The memory 503 is a non-volatile, non-transitory memory, and stores theexecutable code 539 corresponding to the notification handling module100 including any components such as notification routing module 521,notification data mining module 523, behavior analysis module 525 orenvironment analysis module 527. The processor 501 is operative toexecute the executable code 539, which may be stored in memory 503, toperform the methods of operation disclosed herein. The memory 503 mayalso store a user history 535 which is accessed and used by the behavioranalysis module 525. User settings 537 may also be stored in memory 503and may be accessed by the notification handling system 100 or any ofits component modules to determine how to handle and route notificationsin accordance with user preferences.

The various embodiments also include non-volatile, non-transitorycomputer readable memory, other than memory 503, that may containexecutable instructions or executable code, for execution by at leastone processor, that when executed, cause the at least one processor tooperate in accordance with the functionality and methods of operationherein described. The computer readable memory may be any suitablenon-volatile, non-transitory, memory such as, but not limited to,programmable chips such as EEPROMS, flash ROM (thumb drives), compactdiscs (CDs) digital video disks (DVDs), etc., that may be used to loadexecutable instructions or program code to other processing devices suchas communication devices or other devices such as those that may benefitfrom the features of the herein described embodiments.

FIG. 6 is a diagram showing further details of the software stack 502executing on processor 501 in accordance with an embodiment. Thenotification handling system 100 may reside within an applicationframework layer 605 and is operatively coupled to a notification manager607. The operative coupling may be achieved by software coupling thatallows information flow and command and control signals between thenotification handling system 100 and the notification manager 607 whichfurther interacts with applications 529 executed within an applicationlayer 609. The software coupling between the notification handlingsystem 100 and the notification manager 607 may, in some embodiments,utilize libraries or APIs contained within the libraries 603 layer ofsoftware stack 502. The software stack 502 also includes kernel 601which provides interfaces between the operating system functionality andlower-level systems such as device drivers and other hardware accessetc. as understood by those of ordinary skill.

That is, the kernel 601 provides fundamental interaction at the hardwarelevel of communication device 300. For example, the kernel 601 mayprovide required operating system tasks such as program loading, systemresource allocation, handling device input and output, and some memorymanagement functions. The kernel 601 may be created as anobject-oriented design that can interface, and enable communicationwith, programming objects within the software stack 502 and an operatingsystem overall used by communication device 300.

The applications 529 residing within the application layer 609 mayinclude a home screen 611, contact lists 613, a mobile phone application615, a browser 617 and various other applications not shown. Thenotification handling system 100 is operatively coupled to at least themobile phone application 615, and possibly also the browser 617, byoperative coupling 619 through the notification manager 607. Theoperative coupling is software coupling utilizing any necessary libraryor API from the libraries 603 layer.

That is, notifications meant for the mobile phone application 615 or thebrowser 617, or any other operatively coupled application ofapplications 529, may be intercepted by the notification handling system100 and parsed, analyzed, and augmented in order to achieve the featuresand functions of the embodiments herein described. Likewise thenotification handling system 100 may send command or control signals toperform various functions related to the notifications of theapplications such as, but not limited to, dismissing the notificationsfrom display on the particular communication device, or responding tothe notifications in any of various ways.

FIG. 7 is a diagram illustrating an example of communication between awearable device, i.e. smart watch 701, and a mobile device, i.e.communication device 700, in accordance with an embodiment. In FIG. 7,the communication device 700 is a mobile telephone which receives anotification. In one example, the notification may be related to anincoming call. The communication device 700 may forward thisnotification to a paired device, such as the smart watch 701, over thewireless link 703. The smart watch 701 includes a display 711 and userinterfaces such as a scrollbar 713 on a graphical user interface andvarious buttons 715. Smart watch 701 may display a notification 717 onthe display 711 such as the message “Call received: John Smith”. Thenotification 717 may be an augmented notification in that thecommunication device 700, upon receiving the incoming call, would onlydisplay the “call received” indicator icon 705 but would not display anyinformation regarding the identity of the caller. Likewise, thecommunication device 700 may display the “e-mail received” indicatoricon 707 which also provides little information other than theinformation that a message has been received. Therefore, a notificationhandling system in accordance with the embodiments residing incommunication device 700 may augment the notification 705 and send theaugmented notification to the smart phone 701 over the wireless link703. Therefore the notification 717 displayed on the smart watch 701display 711, is an example of an augmented notification.

Another notification 709 (or an input query) may be displayed bycommunication device 700 that enables the user to perform a globaldismissal of the notification and clear all devices of the notification.The notification 709 may also be forwarded to the smart watch 701 anddisplayed as notification 719. By pressing one of the buttons 715 forexample, the user may clear the prior notification 717. In the exampleof FIG. 7, if the user pressed the appropriate one of the buttons 715,the smart watch 701 would send a global dismissal command signal to thecommunication device 700 over the wireless link 703. The communicationdevice 700 would then route the global dismissal through the appropriateserver to any other communication devices associated with that user sothat the notification would be appropriately dismissed from eachcommunication device.

Alternatively the user may use the respond to notification 709 using thecommunication device 700 and clear the notifications from thecommunication device 700 which would likewise send a global dismissalsignal to all other associated communication devices including the smartwatch 701.

In another example the user may take some action other than dismissalsuch as responding to a notification on an appropriate device. Forexample, if the notification is related to a received text message, theuser may wish to respond by sending a like text message in reply to thetext message sender. However the smart watch 701 may be incapable ofsending a responding text message due to its lack of a keypad. In thiscase, the notification handling system would determine which device ordevices to route the notification to, based on the known capability ofeach device. That is, the smart watch 701 would not receive thenotification in some instances when the smart watch 701 was not theappropriate device to respond to the notification.

In accordance with the embodiments, other criteria may also be used fordeciding when to send given notifications to particular devices based onthe environment of the particular device and other factors as will bedescribed in further detail below.

FIG. 8 is a flow chart showing a method of operation of a notificationhandling system in accordance with various embodiments. The method ofoperation begins in block 801 as shown and a notification is received bya first device of a group of devices as shown in block 803. In block805, a notification handling system, resident on the first device, minesdata from the notification. In block 807, the notification handlingsystem creates an augmented notification message based on the mined dataand sends the augmented notification message to at least one otherdevice of the group as shown in block 809. The method of operation endsin block 811.

FIG. 9 is a flow chart showing a method of operation of a notificationhandling system in accordance with various embodiments. The method ofoperation begins in block 901 and the notification handling systemdetermines the notification type for the received notification in block903. The notification handling system determines the device capabilitiesfor every other device in the group of devices as shown in block 905.The device capabilities may be determined when each device is initiallyassociated with the user's login ID. The capability information may bestored in the server 203 and pushed to each of the communication devicesin the group. In this way, the notification handling system on acommunication device is aware of the capabilities of each othercommunication device owned or used by the user. In block 907, thenotification handling system determines the appropriate notificationaugmentation for each device based on the device's capabilities. Inblock 909 the notification handling system determines which device ordevices to route the notification to based on the environment sensed andanalyzed for the particular device. The method of operation ends inblock 911 as shown.

FIG. 10 is a diagram of inputs and output for the user behavior analysisin accordance with an embodiment. The user behavior analysis module 109obtains information from contact lists 1001, at least one calendarapplication 1005, various social media contacts 1003, user preferences1007, and a user history 1009. The user history 1009 informs the userbehavior analysis module 109 of past interactions with variousnotification types, contacts in contact lists 1001 or social mediacontacts 1003, certain events, etc., such that the user behavioranalysis module 109 can create and follow a user specific protocol forhandling specific notifications. The user behavior analysis module 109then provides the user behavior analysis information to the notificationrouting module 111 for appropriate routing. For example, a given type ofnotification may be historically responded to by sending a text message.The notification routing 111 may then accordingly, provided othercriteria are satisfied, route the notification to a communication devicethat has a keypad so that a text message reply can be sent by the user.

FIG. 11 is a diagram of inputs and output for device environmentanalysis in accordance with an embodiment. The device environmentanalysis module 105 receives inputs from device sensors 1101, the timeand date 1105 of the particular notification, the location 1103 of theparticular communication device, any user preferences 1107, and otherinformation such as what may be contained in calendar 1005. For example,the user may have an appointment in the calendar 1005 that indicatesthat the user will be in a certain environment such as traveling in acar, on a train or in an airplane such that sending a notification to aparticular device with the user at that particular place and event wouldnot be useful. The device environment analysis module 105 then sends itsanalysis as information to the notification routing module 111 fortaking appropriate action.

FIG. 12 is a flow chart showing further details of operation of anotification handling system in accordance with various embodiments. Themethod of operation begins in block 1201 as shown and the notificationevent is received in block 1203. The notification handling systemobtains the incoming notification in block 1205 and determines thenotification type in block 1207. This may include parsing thenotification as shown in block 1209, and extracting details from thenotification as shown in block 1211. The details extracted may includethe identity of the person or application that sent or generated thenotification, the time the notification was sent, and may summarize anyparticular content contained within the notification or that thenotification is related to. For example, if the notification is relatedto an incoming text message or e-mail message, the notification handlingsystem may perform some analysis of the content in order to provide asummary in the augmented notification. In block 1213 the notificationhandling system determines the priority of the notification and furtherdetails of this operation is illustrated in FIG. 13.

Turning to FIG. 13, in decision block 1301 the notification handlingsystem determines if any behavioral data exists for the particularnotification type received. If yes, then the notification handlingsystem may apply weighting factors based on the behavioral data as shownin block 1303. If no behavioral data is found to exist in decision block1301, then the method of operation proceeds to decision block 1305 anddetermines whether the sender of the notification is known entity ornot. The entity may be a person when the notification is related to atelephone call, text message, an e-mail message etc., or may be aspecific application such as a calendar application informing the userof an upcoming appointment. If the sender is not identifiable indecision block 1305, then the method of operation proceeds to block1311. However if the sender of the notification is identified indecision block 1301, then the notification handling system checks to seeif any behavioral data exists related to the particular sender as shownin decision block 1307. If not, the method of operation again proceedsto block 1311. If behavioral data does exist then weighting factors areapplied as shown in block 1309.

Proceeding with the operation related to block 1311, the notificationhandling system reviews any content including searching for keywords,message status, or other information. Then, as shown in block 1313, thenotification handling system assigns a priority level for thenotification. The assigned priority level may be different than thepriority level the notification inherently had assigned and which mayhave been assigned by an application or by a person sending a messagerelated to the notification. Put another way, a notification may bere-prioritized by the notification handling system.

The method of operation then returns to block 1215 and the process flowshown in FIG. 12 continues. In block 1215, the notification handlingsystems determines the appropriate response action. Further details ofoperation related to the operations of block 1215 are shown in FIG. 14.Thus the method of operation proceeds to input blocks 1401 and 1403. Atinput block 1401, the notification handling system obtains sensor inputsfrom a set of sensors operative in one or more of the communicationdevices that are candidates for receiving and augmented notification.The sensors may include, but are not limited to, accelerometer 1405, anambient audio sensor 1407, a gyroscopic sensor 1409, a temperaturesensor 1411, or light level sensor 1413, etc. The notification handlingsystem may also obtain other inputs as shown in input block 1403 such assome of the inputs that were discussed with respect to the variouscomponent modules in FIG. 1, FIG. 10 or FIG. 11.

Based on the sensor data or other data received, the notificationhandling system determines if the environment is discernible as shown indecision block 1415. For example, the notification handling system maydetermine one of the environments 1417 such as that the user is running,walking, on a train, in a vehicle, in a crowd or other high noiseenvironment, in a meeting, etc. For example, ambient audio informationmay be an indicator that the user is in a high noise environment whilecalendar information obtained as other inputs at input block 1403 mayindicate that the user is at an outdoor concert. In that case, sending acertain type of notification to the user's mobile telephone at theconcert would not be useful. Thus, if the environment is discernible indecision block 1415, then the notification handling system will decidewhether to provide the notification at the current device only as shownin decision block 1419, that is, to display the notification and notroute the notification any further. If yes and the notification shouldremain at the local device, then the notification handling system maycheck for device capabilities as shown in block 1423 and may furtherdecide whether to augment the notification for the particular device asshown in decision block 1425.

If the notification handling system decides that the notification shouldbe routed to another device in decision block 1419, then thenotification handling system may check with the appropriate server todetermine what other devices are available as shown in decision block1421. If other devices are not available in decision block 1421, thenthe notification handling system may make a decision as to whether toautomatically respond as shown in decision block 1429. If auto respondis not desirable in decision block 1409, then the method of operationmay return to operation block 1423 and check for device capabilities ofthe current device. However, if auto respond is desirable in decisionblock 1429, then the notification handling system may take appropriateaction as shown in operations block 1431.

The appropriate action for auto responding may be ending a call, mutinga call, sending an automatic text reply, sending an automatic e-mailreply, automatically calling back, sending the call to voicemail,performing a global dismissal of the notification or some other actionetc. The notification handling system then creates a new notification inoperation block 1433 to inform the user that the auto reply was sent inresponse to the received notification.

The notification handling system may then check for device capabilitiesin block 1423 and may augment the notification in decision block 1425based on the device capabilities. Returning to decision block 1421, ifother devices are available, the notification handling system may selectone or more of the available devices as shown in operation block 1427.For each device, the notification handling system will check the devicecapabilities as shown in operation block 1423 and will, for each device,determine whether the notification should be augmented as shown indecision block 1425. Depending upon whether the notification should beaugmented or not, the method of operation will return to the processflow FIG. 12 in either of operation block 1217, which augments thenotification, or operation block 1219, which immediately precedes toroute the notification to the selected device or devices. The method ofoperation then ends in block 1221 as shown.

Therefore, in light of the above description, various use case scenariosmay be envisioned by those of ordinary skill. In one example use casescenario, a communication device may receive an incoming notificationthat an e-mail message has been received. However, based on the userhistory, the notification handling system may determine that the userrarely if ever responds to e-mail messages from a particular sender andeither files the e-mail message or immediately deletes it. Thenotification handling system may automatically respond by taking theappropriate action, such as deleting the e-mail, and performing a globaldismissal of the notification from the receiving device and any otherdevice to which the notification was routed.

In another use case scenario, a user may receive the e-mail message, andthe user history may show that the user has a history of respondingimmediately by sending a responsive e-mail. The notification handlingsystem may determine that the notification should be sent to the user'spersonal computer which has a keyboard and at which environment analysisshows the user is most likely present and using at the time of theincoming notification. The user may then receive the notification at thepersonal computer, and type a responsive e-mail and subsequently clearthe notification message from all communication devices.

The user may receive a notification of an incoming telephone call at amobile telephone communication device and the notification handlingsystem may determine that the user is in an important meeting based oncalendar data and location information obtained from the user's mobiletelephone. Assuming that the behavior analysis indicates the call is notparticularly urgent based on its content, the sender, and otherinformation collected as was described above, the notification may notbe routed to the user's mobile telephone. Instead, the notification maybe routed to the user's smart watch. At that point the user may be ableto see the caller's name and press a button, or utilize some other userinterface of the smart watch, to perform a global dismissal of the call.

As will be understood by those of ordinary skill in view of the detaileddescription of various embodiments provided herein, many other varioususe case scenarios may be realized using the features of the embodimentsdescribed above. Therefore the features and functions described abovefor the notification handling system provide many advantages over priorsystems such that the wide variety of use case scenarios may be realizedand a more intelligent system for providing notifications to a user canlikewise be achieved.

While various embodiments have been illustrated and described, it is tobe understood that the invention is not so limited. Numerousmodifications, changes, variations, substitutions and equivalents willoccur to those skilled in the art without departing from the scope ofthe present invention as defined by the appended claims.

What is claimed is:
 1. A method comprising: receiving, by a mobilecomputing device, a notification; determining, by the mobile computingdevice, a type of the notification; determining, based on motion datagenerated by an accelerometer of the mobile computing device, anactivity of a user of the mobile computing device; and responsive todetermining that the activity of the user of the mobile computing deviceis running or walking: determining, by the mobile computing device, oneor more capabilities of a wearable computing device connected to themobile computing device via a wireless link; augmenting, by the mobilecomputing device and based on the one or more capabilities of thewearable computing device, the notification with additional information,the additional information including a time the notification wasreceived; and sending, from the mobile computing device to the wearablecomputing device via the wireless link, the notification including theadditional information.
 2. The method of claim 1, further comprising:responsive to determining that the activity is traveling in a train,forwarding, by the mobile device the notification to a differentcomputing device from a group of computing devices associated with theuser, wherein the mobile computing device and the wearable computingdevice are included in the group of computing devices.
 3. The method ofclaim 1, wherein the mobile computing device is a first computing devicefrom a group of computing devices associated with the user, the methodfurther comprising: receiving, by the first computing device, from asecond computing device from the group of computing devices, sensor datafrom a plurality of sensors of the second computing device; determining,by the first computing device, based on the sensor data received fromthe second computing device, an environment of the second computingdevice; and selectively sending, by the first computing device, to thesecond computing device, and based on the environment of the secondcomputing device, the notification.
 4. The method of claim 3, whereinthe sensor data received from the second computing device includes alocation of the second computing device, the method further comprising:determining, by the first computing device, based on the location of thesecond computing device, whether the second computing device is inproximity to the first computing device, wherein selectively sending thenotification comprises, responsive to determining that the secondcomputing device is in the proximity of the first computing device,sending, by the first computing device, to the second computing device,the notification.
 5. The method of claim 1, further comprising:receiving, by the mobile computing device, from the wearable computingdevice, a notification dismissal command; and sending, by the mobilecomputing device, a global dismissal command to each computing devicefrom a group of computing devices associated with the user to cause thenotification to be dismissed by each computing device from the group ofcomputing devices.
 6. The method of claim 1, wherein the notification isa first notification, the method further comprising: responsive todetermining that the activity is traveling in the airplane or travelingin a vehicle: sending, by the mobile computing device, an automaticreply to a sender of the first notification; and outputting, by themobile computing device, a second notification indication that theautomatic reply was sent to the sender of the first notification.
 7. Amobile computing device comprising: at least one wireless transceiverthat receives a notification; an accelerometer that generates motiondata based on movement of the mobile computing device; a memory thatstores instructions for a notification handling system; and one or moreprocessors that executes the instructions for the notification handlingsystem to: determine a type of the notification; determine, based on themotion data, an activity of a user of the mobile computing device; andresponsive to determining that the activity of the user of the mobilecomputing device is running or walking: determine one or morecapabilities of a wearable computing device connected to the mobilecomputing device via a wireless link; augment, based on the one or morecapabilities of the wearable computing device, the notification withadditional information, the additional information including a time thenotification was received; and send, to the wearable computing devicevia the wireless link, the notification including the additionalinformation.
 8. The mobile computing device of claim 7, wherein theprocessor executes the instructions for the notification handling systemto: responsive to determining that the activity is traveling in a train,send the notification to a different computing device from a group ofcomputing devices associated with the user, wherein the mobile computingdevice and the wearable computing device are included in the group ofcomputing devices.
 9. The mobile computing device of claim 7, wherein:the mobile computing device is a first computing device from a group ofcomputing devices associated with the user; and the processor executesthe instructions for the notification handling system to: receive, froma second computing device from the group of computing devices, sensordata from a plurality of sensors of the second computing device;determine, based on the sensor data received from the second computingdevice, an environment of the second computing device; and selectivelysend, to the second computing device, and based on the environment ofthe second computing device, the notification.
 10. The mobile computingdevice of claim 9, wherein: the sensor data received from the secondcomputing device includes a location of the second computing device; andthe processor executes the instructions for the notification handlingsystem to: determine, based on the location of the second computingdevice, whether the second computing device is in proximity to the firstcomputing device, wherein selectively sending the notificationcomprises, responsive to determining that the second computing device isin the proximity of the first computing device, send, to the secondcomputing device, the notification.
 11. The mobile computing device ofclaim 7, wherein the processor executes the instructions for thenotification handling system to: receive, from the wearable computingdevice, a notification dismissal command; and send a global dismissalcommand to each computing device from a group of computing devicesassociated with the user to cause the notification to be dismissed byeach computing device from the group of computing devices.
 12. Themobile computing device of claim 7, wherein the notification is a firstnotification, and wherein the processor executes the instructions forthe notification handling system to: responsive to determining that theactivity is traveling in the airplane or traveling in a vehicle: send anautomatic reply to a sender of the first notification; and output asecond notification indication that the automatic reply was sent to thesender of the first notification.
 13. A computer-readable memory encodedwith instructions that, when executed, cause one or more processors of afirst computing device to: receive a notification, wherein the firstcomputing device is from a group of computing devices associated with auser of the first computing device, and wherein a wearable computingdevice connected to the first computing device via a wireless link isincluded in the group of computing devices; determine a type of thenotification; determine, based on motion data generated by anaccelerometer of the first computing device, an activity of the user ofthe first computing device; and responsive to determining that theactivity is running or walking: determine one or more capabilities ofthe wearable computing device; augment, based on the one or morecapabilities of the wearable computing device, the notification withadditional information, the additional information including one or moreof a time the notification was received; and send, to the wearablecomputing device via the wireless link, the notification.
 14. Thecomputer-readable memory of claim 13, wherein the instructions furthercause the one or more processors to: receive, from the wearablecomputing device, a notification dismissal command; and send a globaldismissal command to each computing device from the group of computingdevices to cause the notification to be dismissed by each computingdevice from the group of computing devices.
 15. The computer-readablememory of claim 13, wherein the notification is a first notification,and wherein the instructions further cause the one or more processorsto: responsive to determining that the activity is traveling in theairplane or traveling in a vehicle: send an automatic reply to a senderof the first notification; and output a second notification indicationthat the automatic reply was sent to the sender of the firstnotification.